/********************************************************************
  A SymbolBrowser plugin for JuffEd editor.

  Copyright: 2010 Aleksander Sokoloff <asokol@mail.ru>


  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License.
  version 2 as published by the Free Software Foundation.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software Foundation,
  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*********************************************************************/


#ifndef KATE_SYMBOLBROWSER_PLUGIN_H
#define KATE_SYMBOLBROWSER_PLUGIN_H

#include <kate/plugin.h>
#include <kate/mainwindow.h>
#include <kate/pluginconfigpageinterface.h>
#include <kurl.h>
#include <kxmlguiclient.h>

#include <QList>

#include <kpluginfactory.h>

#define CONFIG_GROUP "KateSymbolBrowserPlugin"

class KateSymbolBrowserView;

/**********************************************************
 *
 **********************************************************/
class KateSymbolBrowserPlugin : public Kate::Plugin, public Kate::PluginConfigPageInterface
{
Q_OBJECT
Q_INTERFACES(Kate::PluginConfigPageInterface)

friend class KateSymbolBrowserView;

public:
    explicit KateSymbolBrowserPlugin(QObject* parent = 0, const QList<QVariant>& = QList<QVariant>());
    virtual ~KateSymbolBrowserPlugin();

    Kate::PluginView *createView(Kate::MainWindow *mainWindow);

    // PluginConfigPageInterface

    uint configPages() const { return 1; }
    Kate::PluginConfigPage *configPage(uint number = 0, QWidget *parent = 0, const char *name = 0);
    QString configPageName(uint number = 0) const;
    QString configPageFullName(uint number = 0) const;
    KIcon configPageIcon(uint number = 0) const;

private:
    QList<KateSymbolBrowserView*> mViews;

signals:
    void globalSettingsChanged();
};

K_PLUGIN_FACTORY_DECLARATION(KateSymbolBrowserFactory)


#endif // KATE_SYMBOLBROWSER_PLUGIN_H



